package com.atguigu.gmall.cart.client;

import com.atguigu.gmall.cart.client.impl.CartDegradeFeignClient;
import com.atguigu.gmall.common.result.Result;
import com.atguigu.gmall.model.cart.CartInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

@FeignClient(value = "service-cart",fallback = CartDegradeFeignClient.class)
public interface CartFeignClient {

    //添加购物车
    //在发布数据接口的时候，如果有request对象，则不需要处理：它的作用是获取userId，而userId在请求头中
    //微服务传递数据的时候，是没有携带请求头的，需要特殊处理   需要在调用feign的时候，编写一个拦截器得到header
        @GetMapping("/api/cart/addToCart/{skuId}/{skuNum}")
        Result addToCart(@PathVariable("skuId") Long skuId, @PathVariable("skuNum") Integer skuNum);

    /**
     * 根据用户Id 查询购物车列表
     * @param userId
     * @return
     */
    @GetMapping("/api/cart/getCartCheckedList/{userId}")
    List<CartInfo> getCartCheckedList(@PathVariable("userId") String userId);

    /**
     * 删除购物车数据
     * @param userId
     */
    @GetMapping("/api/cart/delCart/{userId}")
    void delCart(@PathVariable String userId);
}
